package com.framework.service;

import com.baomidou.mybatisplus.service.IService;
import com.framework.entity.sys.SysAgentInfo;
import com.framework.page.PageUtils;

import java.math.BigDecimal;
import java.util.Map;

/**
 * 功能描述: 代理商详情接口
 *
 * @author ck
 * @date 2018/8/28 19:46
 */
public interface AgentInfoService extends IService<SysAgentInfo> {
	/**
	 * 分页列表
	 * @param params
	 * @return
	 */
    PageUtils queryPage(Map<String, Object> params);

	/**
	 *根据推荐码查询合伙人信息
	 * @param agentId 所属代理商id
	 * @return
	 */
	SysAgentInfo getAgentInfoById(Long agentId);

	/**
	 * 录入地阿里上详情数据
	 * @param agentId 代理商所属id
	 */
	void insertAgentInfo(Long agentId);

	/**
	 * 修改余额
	 * @param agentId 代理商d
	 * @param amount 金额
	 */
	void reduceBalance(Long agentId, BigDecimal amount);

	/**
	 * 修改提现密码
	 * @param password 密码
	 * @param confPassword 确认密码
	 * @param token 当前人登录密码
	 * @param vCode  验证码
	 */
	void updateTaskPassword(String password, String confPassword, String token, String vCode);

	/**
	 * 提现
	 * @param token 当前登录人token
	 * @param password 密码
	 * @param money 金额
	 * @param bankNo 银行卡号
	 */
	void takeMoney(String token, String password, BigDecimal money, String bankNo);

	/**
	 * 增加余额
	 * @param agentId 所属代理商
	 * @param amount 金额
	 */
	void addBalance(Long agentId, BigDecimal amount);

	/**
	 * 修改
	 * @param agentInfo
	 */
	void updateAgentInfoById(SysAgentInfo agentInfo);

	/**
	 * 增加总余额和可提余额
	 * @param agentId
	 * @param amount
	 */
	void addAmount(Long agentId,BigDecimal amount);

	/**
	 * 查询提现金额总计
	 * @return
	 * @param deptId
	 */
	Map<String,Object> queryTakeSum(Long deptId);

	/**
	 * 减少冻结金额
	 * @param agentId
	 * @param takeAmount
	 */
	void reduceFreeznAmount(Long agentId, BigDecimal takeAmount);

	/**
	 * 减少金额
	 * @param agentId
	 * @param trueAmount
	 */
	void reduceAmount(Long agentId, BigDecimal trueAmount);

	/**
	 * 提现
	 * @param token
	 * @param password
	 * @param money
	 * @param bankNo
	 */
	void takeAmount(String token, String password, BigDecimal money, String bankNo);

	/**
	 * 增加冻结金额
	 * @param agentId
	 * @param reapAmount
	 */
	void addFrozen(Long agentId, BigDecimal reapAmount);

	/**
	 * 解冻金额
	 * @param agentId
	 * @param amount
	 */
	void thawAmount(Long agentId, BigDecimal amount);
}

